A number of businesses offer their customers customer support via the telephone. Often, the customer service agents are busy so the business places the customer's telephone on hold and places the customer's request for service in a queue from where such requests are retrieved as customer service agents become available. Once retrieved, the customer's phone is taken off hold and the customer is able to talk to an agent. In some instances, the customer is even informed of how long she can expect to wait on hold. Oftentimes this wait time is based on past data corresponding to average wait times associated with the customer's position in the queue. In other instances, the customer is informed of the estimated wait, the request for service is placed in a queue, but the customer is offered a callback rather than being placed on hold. If the customer accepts the offer to be called back, both the system and the customer hang up but the system continues to keep track of the customer's position in the queue. When the customer's request eventually comes to the front of the queue, the system initiates a phone call back to the customer. A problem with this scheme is the estimated wait is tightly coupled to the condition of the queue at the time of the initial call. Further, callback attempts are unlikely to occur at a time dose to the time implied by the estimated wait. Due to variations in resources, staffing, and transaction types, it is typically the case that, when the customer's service request actually arrives at the front of the queue, the actual wait time has substantially deviated from the estimate given to the customer. Lastly, the customer is only given the choice of accepting or rejecting the callback offer. The customer has no control over the schedule of when a callback will be attempted